[INFO] cloning repository https://github.com/Shan-N/rust-firewall
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Shan-N/rust-firewall" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FShan-N%2Frust-firewall", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FShan-N%2Frust-firewall'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 452effc9ef22c98b980944d0b28f44f2f9d7935e
[INFO] fixing Shan-N/rust-firewall against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=start=2015 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FShan-N%2Frust-firewall" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Shan-N/rust-firewall
[INFO] finished tweaking git repo https://github.com/Shan-N/rust-firewall
[INFO] tweaked toml for git repo https://github.com/Shan-N/rust-firewall written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Shan-N/rust-firewall on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Shan-N/rust-firewall already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tun v0.8.2
[INFO] [stderr]   Downloaded toml v0.9.2
[INFO] [stderr]   Downloaded c2rust-bitfields v0.20.0
[INFO] [stderr]   Downloaded c2rust-bitfields-derive v0.20.0
[INFO] [stderr]   Downloaded serde_spanned v1.0.0
[INFO] [stderr]   Downloaded derive v1.0.0
[INFO] [stderr]   Downloaded toml_writer v1.0.2
[INFO] [stderr]   Downloaded toml_datetime v0.7.0
[INFO] [stderr]   Downloaded toml_parser v1.0.1
[INFO] [stderr]   Downloaded wintun-bindings v0.7.32
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 62c68061ba2be73ba0b7bda1f4e8209910e8a3a79e1cb61aa4f81237cf391b5d
[INFO] running `Command { std: "docker" "start" "62c68061ba2be73ba0b7bda1f4e8209910e8a3a79e1cb61aa4f81237cf391b5d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "62c68061ba2be73ba0b7bda1f4e8209910e8a3a79e1cb61aa4f81237cf391b5d" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "62c68061ba2be73ba0b7bda1f4e8209910e8a3a79e1cb61aa4f81237cf391b5d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "62c68061ba2be73ba0b7bda1f4e8209910e8a3a79e1cb61aa4f81237cf391b5d" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=start=2015", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling thiserror v2.0.12
[INFO] [stderr]     Checking bitflags v2.9.1
[INFO] [stderr]     Checking winnow v0.7.12
[INFO] [stderr]    Compiling pnet v0.35.0
[INFO] [stderr]     Checking log v0.4.27
[INFO] [stderr]     Checking toml_writer v1.0.2
[INFO] [stderr]    Compiling nix v0.30.1
[INFO] [stderr]     Checking derive v1.0.0
[INFO] [stderr]     Checking pnet_macros_support v0.35.0
[INFO] [stderr]    Compiling syn v2.0.104
[INFO] [stderr]     Checking pnet_sys v0.35.0
[INFO] [stderr]     Checking toml_parser v1.0.1
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling pnet_macros v0.35.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.12
[INFO] [stderr]     Checking pnet_packet v0.35.0
[INFO] [stderr]     Checking tun v0.8.2
[INFO] [stderr]     Checking pnet_transport v0.35.0
[INFO] [stderr]     Checking ipnetwork v0.20.0
[INFO] [stderr]     Checking toml_datetime v0.7.0
[INFO] [stderr]     Checking serde_spanned v1.0.0
[INFO] [stderr]     Checking pnet_datalink v0.35.0
[INFO] [stderr]     Checking toml v0.9.2
[INFO] [stderr]     Checking rust-firewall v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated method `tun::Configuration::name`: Since the API `name` may have an easy name conflict when IDE prompts, it is replaced by `tun_name` for better coding experience
[INFO] [stdout]  --> src/tun.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 |         .name(name)
[INFO] [stdout]   |          ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `IpNextHeaderProtocol: Deserialize<'_>` is not satisfied
[INFO] [stdout]     --> src/rules.rs:15:15
[INFO] [stdout]      |
[INFO] [stdout]   15 |     protocol: Option<IpNextHeaderProtocol>,
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Deserialize<'_>` is not implemented for `IpNextHeaderProtocol`
[INFO] [stdout]      |
[INFO] [stdout]      = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `IpNextHeaderProtocol` type
[INFO] [stdout]      = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]      = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]                &'a Path
[INFO] [stdout]                &'a [u8]
[INFO] [stdout]                &'a str
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]                (T0, T1, T2, T3)
[INFO] [stdout]              and 154 others
[INFO] [stdout]      = note: required for `std::option::Option<IpNextHeaderProtocol>` to implement `Deserialize<'_>`
[INFO] [stdout] note: required by a bound in `next_element`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.219/src/de/mod.rs:1732:12
[INFO] [stdout]      |
[INFO] [stdout] 1730 |     fn next_element<T>(&mut self) -> Result<Option<T>, Self::Error>
[INFO] [stdout]      |        ------------ required by a bound in this associated function
[INFO] [stdout] 1731 |     where
[INFO] [stdout] 1732 |         T: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `SeqAccess::next_element`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `IpNextHeaderProtocol: Deserialize<'_>` is not satisfied
[INFO] [stdout]     --> src/rules.rs:15:15
[INFO] [stdout]      |
[INFO] [stdout]   15 |     protocol: Option<IpNextHeaderProtocol>,
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Deserialize<'_>` is not implemented for `IpNextHeaderProtocol`
[INFO] [stdout]      |
[INFO] [stdout]      = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `IpNextHeaderProtocol` type
[INFO] [stdout]      = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]      = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]                &'a Path
[INFO] [stdout]                &'a [u8]
[INFO] [stdout]                &'a str
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]                (T0, T1, T2, T3)
[INFO] [stdout]              and 154 others
[INFO] [stdout]      = note: required for `std::option::Option<IpNextHeaderProtocol>` to implement `Deserialize<'_>`
[INFO] [stdout] note: required by a bound in `next_value`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.219/src/de/mod.rs:1871:12
[INFO] [stdout]      |
[INFO] [stdout] 1869 |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
[INFO] [stdout]      |        ---------- required by a bound in this associated function
[INFO] [stdout] 1870 |     where
[INFO] [stdout] 1871 |         V: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `MapAccess::next_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `IpNextHeaderProtocol: Deserialize<'_>` is not satisfied
[INFO] [stdout]   --> src/rules.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | #[derive(Deserialize, Debug, Clone)]
[INFO] [stdout]    |          ^^^^^^^^^^^ the trait `Deserialize<'_>` is not implemented for `IpNextHeaderProtocol`
[INFO] [stdout]    |
[INFO] [stdout]    = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `IpNextHeaderProtocol` type
[INFO] [stdout]    = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]    = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]              &'a Path
[INFO] [stdout]              &'a [u8]
[INFO] [stdout]              &'a str
[INFO] [stdout]              ()
[INFO] [stdout]              (T,)
[INFO] [stdout]              (T0, T1)
[INFO] [stdout]              (T0, T1, T2)
[INFO] [stdout]              (T0, T1, T2, T3)
[INFO] [stdout]            and 154 others
[INFO] [stdout]    = note: required for `std::option::Option<IpNextHeaderProtocol>` to implement `Deserialize<'_>`
[INFO] [stdout] note: required by a bound in `rules::_::_serde::__private::de::missing_field`
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.219/src/private/de.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn missing_field<'de, V, E>(field: &'static str) -> Result<V, E>
[INFO] [stdout]    |        ------------- required by a bound in this function
[INFO] [stdout] 24 | where
[INFO] [stdout] 25 |     V: Deserialize<'de>,
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^ required by this bound in `missing_field`
[INFO] [stdout]    = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src`
[INFO] [stdout]   --> src/packet.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 |         let src = ippacket.get_source();
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dst`
[INFO] [stdout]   --> src/packet.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 |         let dst = ippacket.get_destination();
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_dst`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `toml_str`
[INFO] [stdout]   --> src/packet.rs:16:13
[INFO] [stdout]    |
[INFO] [stdout] 16 |         let toml_str = fs::read_to_string("rules.toml").expect("Failed to read rules.toml");
[INFO] [stdout]    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_toml_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src_port`
[INFO] [stdout]   --> src/packet.rs:22:25
[INFO] [stdout]    |
[INFO] [stdout] 22 |                     let src_port = tcp.get_source();
[INFO] [stdout]    |                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_src_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dst_port`
[INFO] [stdout]   --> src/packet.rs:23:25
[INFO] [stdout]    |
[INFO] [stdout] 23 |                     let dst_port = tcp.get_destination();
[INFO] [stdout]    |                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dst_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src_port`
[INFO] [stdout]   --> src/packet.rs:35:25
[INFO] [stdout]    |
[INFO] [stdout] 35 |                     let src_port = udp.get_source();
[INFO] [stdout]    |                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_src_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dst_port`
[INFO] [stdout]   --> src/packet.rs:36:25
[INFO] [stdout]    |
[INFO] [stdout] 36 |                     let dst_port = udp.get_destination();
[INFO] [stdout]    |                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dst_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `tun::Configuration::name`: Since the API `name` may have an easy name conflict when IDE prompts, it is replaced by `tun_name` for better coding experience
[INFO] [stdout]  --> src/tun.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 |         .name(name)
[INFO] [stdout]   |          ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rules`
[INFO] [stdout]   --> src/main.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let rules = rules_file.rules;
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_rules`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `IpNextHeaderProtocol: Deserialize<'_>` is not satisfied
[INFO] [stdout]     --> src/rules.rs:15:15
[INFO] [stdout]      |
[INFO] [stdout]   15 |     protocol: Option<IpNextHeaderProtocol>,
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Deserialize<'_>` is not implemented for `IpNextHeaderProtocol`
[INFO] [stdout]      |
[INFO] [stdout]      = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `IpNextHeaderProtocol` type
[INFO] [stdout]      = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]      = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]                &'a Path
[INFO] [stdout]                &'a [u8]
[INFO] [stdout]                &'a str
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]                (T0, T1, T2, T3)
[INFO] [stdout]              and 154 others
[INFO] [stdout]      = note: required for `std::option::Option<IpNextHeaderProtocol>` to implement `Deserialize<'_>`
[INFO] [stdout] note: required by a bound in `next_element`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.219/src/de/mod.rs:1732:12
[INFO] [stdout]      |
[INFO] [stdout] 1730 |     fn next_element<T>(&mut self) -> Result<Option<T>, Self::Error>
[INFO] [stdout]      |        ------------ required by a bound in this associated function
[INFO] [stdout] 1731 |     where
[INFO] [stdout] 1732 |         T: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `SeqAccess::next_element`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `IpNextHeaderProtocol: Deserialize<'_>` is not satisfied
[INFO] [stdout]     --> src/rules.rs:15:15
[INFO] [stdout]      |
[INFO] [stdout]   15 |     protocol: Option<IpNextHeaderProtocol>,
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Deserialize<'_>` is not implemented for `IpNextHeaderProtocol`
[INFO] [stdout]      |
[INFO] [stdout]      = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `IpNextHeaderProtocol` type
[INFO] [stdout]      = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]      = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]                &'a Path
[INFO] [stdout]                &'a [u8]
[INFO] [stdout]                &'a str
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]                (T0, T1, T2, T3)
[INFO] [stdout]              and 154 others
[INFO] [stdout]      = note: required for `std::option::Option<IpNextHeaderProtocol>` to implement `Deserialize<'_>`
[INFO] [stdout] note: required by a bound in `next_value`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.219/src/de/mod.rs:1871:12
[INFO] [stdout]      |
[INFO] [stdout] 1869 |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
[INFO] [stdout]      |        ---------- required by a bound in this associated function
[INFO] [stdout] 1870 |     where
[INFO] [stdout] 1871 |         V: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `MapAccess::next_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rust-firewall` (bin "rust-firewall" test) due to 3 previous errors; 9 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0277]: the trait bound `IpNextHeaderProtocol: Deserialize<'_>` is not satisfied
[INFO] [stdout]   --> src/rules.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | #[derive(Deserialize, Debug, Clone)]
[INFO] [stdout]    |          ^^^^^^^^^^^ the trait `Deserialize<'_>` is not implemented for `IpNextHeaderProtocol`
[INFO] [stdout]    |
[INFO] [stdout]    = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `IpNextHeaderProtocol` type
[INFO] [stdout]    = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]    = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]              &'a Path
[INFO] [stdout]              &'a [u8]
[INFO] [stdout]              &'a str
[INFO] [stdout]              ()
[INFO] [stdout]              (T,)
[INFO] [stdout]              (T0, T1)
[INFO] [stdout]              (T0, T1, T2)
[INFO] [stdout]              (T0, T1, T2, T3)
[INFO] [stdout]            and 154 others
[INFO] [stdout]    = note: required for `std::option::Option<IpNextHeaderProtocol>` to implement `Deserialize<'_>`
[INFO] [stdout] note: required by a bound in `rules::_::_serde::__private::de::missing_field`
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.219/src/private/de.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn missing_field<'de, V, E>(field: &'static str) -> Result<V, E>
[INFO] [stdout]    |        ------------- required by a bound in this function
[INFO] [stdout] 24 | where
[INFO] [stdout] 25 |     V: Deserialize<'de>,
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^ required by this bound in `missing_field`
[INFO] [stdout]    = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src`
[INFO] [stdout]   --> src/packet.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 |         let src = ippacket.get_source();
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dst`
[INFO] [stdout]   --> src/packet.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 |         let dst = ippacket.get_destination();
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_dst`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `toml_str`
[INFO] [stdout]   --> src/packet.rs:16:13
[INFO] [stdout]    |
[INFO] [stdout] 16 |         let toml_str = fs::read_to_string("rules.toml").expect("Failed to read rules.toml");
[INFO] [stdout]    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_toml_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src_port`
[INFO] [stdout]   --> src/packet.rs:22:25
[INFO] [stdout]    |
[INFO] [stdout] 22 |                     let src_port = tcp.get_source();
[INFO] [stdout]    |                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_src_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dst_port`
[INFO] [stdout]   --> src/packet.rs:23:25
[INFO] [stdout]    |
[INFO] [stdout] 23 |                     let dst_port = tcp.get_destination();
[INFO] [stdout]    |                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dst_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src_port`
[INFO] [stdout]   --> src/packet.rs:35:25
[INFO] [stdout]    |
[INFO] [stdout] 35 |                     let src_port = udp.get_source();
[INFO] [stdout]    |                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_src_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dst_port`
[INFO] [stdout]   --> src/packet.rs:36:25
[INFO] [stdout]    |
[INFO] [stdout] 36 |                     let dst_port = udp.get_destination();
[INFO] [stdout]    |                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dst_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rules`
[INFO] [stdout]   --> src/main.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let rules = rules_file.rules;
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_rules`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rust-firewall` (bin "rust-firewall") due to 3 previous errors; 9 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "62c68061ba2be73ba0b7bda1f4e8209910e8a3a79e1cb61aa4f81237cf391b5d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "62c68061ba2be73ba0b7bda1f4e8209910e8a3a79e1cb61aa4f81237cf391b5d", kill_on_drop: false }`
[INFO] [stdout] 62c68061ba2be73ba0b7bda1f4e8209910e8a3a79e1cb61aa4f81237cf391b5d
